package com.cx.file.service;


import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * @author cx
 * @description: 文件管理服务
 * @date 2023/6/2 17:07
 */
public interface FileManageService {

    /**
     * 保存文件 名称冲突时重命名
     *
     * @param dir  目录
     * @param file 文件
     * @return 保存路径
     * @throws IOException io异常
     */
    String uploadFile(String dir, MultipartFile file) throws IOException;


    /**
     * 下载文件到HttpServletResponse
     *
     * @param filePath 文件路径
     * @param response HttpServletResponse
     */
    void downloadFile(String filePath, HttpServletResponse response);

    /**
     * 下载多个文件压缩包到HttpServletResponse
     *
     * @param filePaths 文件路径
     * @param response  HttpServletResponse
     * @throws IOException io异常
     */
    void downloadFileZip(List<String> filePaths, HttpServletResponse response) throws IOException;

    /**
     * 删除文件
     *
     * @param filePath 文件路径
     * @return 成功和失败
     */
    boolean deleteFile(String filePath);
}
